Workshops / Hintergrundberichte / Buchvorstellungen
---------------------------------------------------

1. Workshop: AFPL Ghostscript 6.50 - Teil 3 (von Uwe Pannecke)

Crash-Kurs durch die Ghostscript-Untiefen

1. Dokumentenschau

Bleiben wir zu Beginn unseres dritten Teils noch ein wenig bei der Anzeige 
von Postscript- und PDF-Dokumenten.


1.1 DOpus - des geisterhaften Interpreters Freund

Bisher haben wir uns vorrangig über die Shell mit Ghostscript verständigt. 
Das wird auch im Wesentlichen für den grundsätzlichen Einstieg in den 
Umgang mit dem Programm so bleiben. Doch sollen im alltäglichen Einsatz PS- 
und PDF-Dateien möglichst schnell und aufwandsarm auf dem Bildschirm 
gezaubert werden, bietet sich die Einbindung des Interpreters in 
Dateimanager wie etwa Directory Opus an. 
Nachfolgend ein Beispiel für die DOpus-Konfiguration zur Anzeige von PS-
Dateien. Sinngemäß könnt ihr die Ausführungen selbstverständlich ebenso auf 
die Anzeige von PDF-Dokumenten übertragen. Startet also DOpus und wählt im 
Menü den Abschnitt "Einstellungen" und dort den Unterpunkt "Dateitypen...".

Screenshot:
Screenshot

In selbigem definieren wir nun einen passenden Dateityp "Postscript", der 
DOpus in die Lage versetzten wird, bei Doppelklick auf eine PS-Datei 
automatisch Ghostscript mit der Anzeige der Datei zu beauftragen. Also 
klickt auf den Button "Add". 
Sogleich öffnen sich zwei Fenster. Wir wenden uns dem Dateityp-Fenster zu, 
erkennbar an der oberen Zeile mit den Einträgen "Namen", "ID" und "PRI". In 
das Feld hinter "Name" tragt ihr eine aussagekräftige Bezeichnung, unter 
der der Dateityp aufgelistet werden soll, ein. Angemessen ist sicherlich 
"Postscript". Hinter "ID" tippt ihr "PS" ein und "Pri" bleibt auf der 
Vorgabe "0". Wichtig ist nun, DOpus mitzuteilen, woran der Dateimanager 
erkennen soll, dass es sich um eine Postscript-Datei handelt. Wählt mit 
einem Klick auf das Schubladen-Symbol den Eintrag "Match Name" aus und fügt 
in der Zeile die charakteristische Dateiendung mit dem Eintrag "#?.ps" 
hinzu. Ein Klick auf "Use" schließt die Definition ab.

Screenshot:
Screenshot

Übrig bleibt nun noch das Ereignis-Fenster, in dem ihr festlegt, was DOpus 
bei einer bestimmten Aktion mit der angewählten Datei machen soll. Wir 
haken "Doubleclick" ab und wählen anschließend den Button "Edit". Im sich 
daraufhin öffnenden Fenster veranlassen wir in zwei Zeilen die Anlage eines 
ausreichenden Stapelspeichers für den Interpreter und übergeben Ghostscript 
mit "{f}" die später im Dateilister ausgewählte Datei. Zusätzlich haken wir 
die Option "Output to window" ab und veranlassen so Ghostscript, das 
Anzeige-Fenster so lange offen zu lassen, bis wir es explizit schließen.

Screenshot:
Screenshot

Mit drei letzten Mausklicks auf "Use", noch einmal "Use" und "Save" ist die 
Konfiguration abgeschlossen.


1.2 Zeig mir deine Schokoladenseiten

Zwischenzeitlich werden die Ghostscript-Freunde unter euch vielleicht schon 
diverse PDF-Dokumente betrachtet oder auch gedruckt haben. Nicht immer 
möchte man den kompletten Umfang des Dokuments nutzen. Sollen von solch 
einer Datei nur bestimmte Seiten angezeigt oder zu Papier gebracht werden, 
kann Ghostscript selbstverständlich die entsprechende Auswahl vornehmen. 
Die passenden Aufrufoptionen sind in diesem Fall 
"-dFirstPage=AnfangsSeitennummer" und "-dLastPage=EndSeitennummer".
Wie ihr sicher schon während ersten Experimenten bei der Ghostscript-
Nutzung bemerkt habt, besteht das Programm Amiga-unüblich (dafür aber 
Unix/Linux-typisch) auf eine peinlich genaue Beachtung der Groß- und 
Kleinschreibung in der Syntax.


2. Eine Bildershow mit Ghostscript

Ghostscript kann nicht nur mit PS- und PDF-Dokumenten umgehen. Ebenso ist 
der Interpreter in der Lage, Bilder im GIF-, JPEG-, PBM-, PCX- und CMYK-
Format direkt ohne vorherige Konvertierung auf dem Bildschirm auszugeben. 
In solchen Fällen bedient sich der Interpreter der im Ghostscript-eigenen 
"Libs"-Verzeichnis abgelegten Hilfsprogramme "viewgif.ps", "viewjpeg.ps", 
"viewpbm.ps", "viewjpeg.ps", "viewpcx.ps" und "viewcmyk.ps".
Die entsprechende Syntax der Befehle werden wir uns mit der Anzeige eines 
JPEG-Bilds verdeutlichen. Sinngemäß sind die restlichen unterstützten 
Formate zu handhaben. Wir begeben uns also wieder in die Shell, beamen uns 
mittels "cd Ghostscript:" in das Interpreter-Verzeichnis und setzen mit 
"stack 200000" den Stapelspeicher auf eine ausreichende Höhe. Anschließend 
starten wir Ghostscript und übergeben dem Programm dabei mit "gs 
viewjpeg.ps" eine PS-Hilfsdatei, die den Interpreter in die Lage versetzt, 
das entsprechende Bildformat anzuzeigen.
Die eigentliche Bildschirmpräsentation erfolgt im interaktiven Dialog mit 
dem Interpreter durch den Aufruf "(Bildname.jpg) viewJPEG".

Screenshot:
Screenshot

Analog könnt ihr mit allen unterstützen Bildformaten verfahren, beachtet 
dabei wieder wie gehabt die korrekte Groß- und Kleinschreibung, also 
beispielsweise "(Bildname.gif) viewGIF".


3. Konvertieren, bis der Prozessor glüht

Eine weitere interessante Seite des Postscript-Interpreters ist seine 
Fähigkeit, bestimmte Dateiformate ineinander umwandeln zu können. 
Nachfolgend einige Möglichkeiten zur Anregung für eigene Experimente:


3.1 Adobe Illustrator

Wer seine PS-Dateien in das Grafikformat "AI" des Adobe Illustrator 
umwandeln möchte, bedient sich des Hilfsprogramms "ps2ai.ps", zu finden 
wiederum im "libs"-Verzeichnis. 
Wir wollen im Zusammenspiel von "ps2ai.ps" und Ghostscript den allseits 
bekannten Tiger aus der "Examples"-Schublade in eine Adobe Illustrator-
Datei transformieren. Da die Kommandofolge 
"gs ps2ai.ps zu_konvertierende_Datei.ps" lediglich das 
Konvertierungsergebnis in der Shell ausgeben würde, leiten wir mit 
">RAM:neue_Datei.ai" die Ausgabe in die Datei "neue_Datei.ai" in der RAM-
Disk um. Selbstverständlich kann für die Ausgabeumleitung anstelle der RAM-
Disk auch ein beliebiges Verzeichnis auf der/den Amiga-Festplatte(n) 
benutzt werden. 
Für unser konkretes Beispiel lautet so der komplette Aufruf
"gs >RAM:Tiger.ai ps2ai.ps examples/tiger.ps".

Screenshot:
Screenshot

Mehr oder weniger kurze Zeit nach ihrem Postscript-Absprung ist die 
Großkatze als AI-Tiger gelandet, zumindest fast: Da AFPL Ghostscript in den 
ersten vier Zeilen der AI-Dateien Hinweise zu sich selbst und den 
verwendeten Fonts ohne Voranstellung der Kommentareinleitung "%%" 
vermerkte, mussten diese Zeilen in einem Texteditor entweder zuvor entfernt 
oder der Anfang jeder Zeile mit "%%" versehen werden, bevor Adobe 
Illustrator die AI-Datei als solche akzeptierte.


3.2 In der Destille

Hier soll es nicht um hochprozentige, mehr oder wenig gut schmeckende 
Flüssigkeiten gehen, vielmehr versetzen wir den Interpreter in die Lage, 
Postscript-Dateien in das PDF-Format zu wandeln. Und hier kommt auch gleich 
ein großer Vorteil der aktuellen Version 6.50 gegenüber der alten 5.10 zum 
tragen: Fonts können als solche in einem zu erstellenden PDF-Dokument 
eingebettet werden. 
Ghostscript 5.10 und auch andere PDF-erstellende Programme auf dem Amiga 
wandeln diese Fonts zumeist in Bitmaps um. Dies bläht die erstellte PDF-
Datei erheblich auf und sorgt außerdem für eine sehr bescheidene 
Schriftqualität. Ghostscript 6.50 kann diese Klippe bei der Umwandlung der 
meisten Postscript-Dateien elegant umschiffen.
Wieder soll ein Beispiel die Vorgehensweise demonstrieren: In der RAM-Disk 
liegt die Postscript-Datei "shell.ps", über das Device "pdfwrite" wird 
diese nach PDF gewandelt und als "shell.pdf" erneut in der RAM-Disk 
abgelegt.

Screenshot:
Screenshot

Da Ghostscript bei der interaktiven Bearbeitung nach jeder konvertierten 
Seite auf eine Bestätigung für die Bearbeitung der nachfolgenden Seite 
wartet, könnt ihr bei umfangreichen Dokumenten den Interpreter mit dem 
Kommando "-dNOPAUSE" überreden, alle Seiten in einem Rutsch zu bearbeiten. 
Soll sich Ghostscript nach getaner Arbeit selbständig beenden, hilft der 
Schalter "-dBATCH".


3.3 Von PDF nach Postscript

Was zumeist mit sehr brauchbaren Ergebnissen von PS nach PDF funktioniert, 
gelingt ebenso in der Konvertierung von PDF nach Postscript. Die 
Vorgehensweise entspricht der der PS-nach-PDF-Konvertierung, nur dass 
diesmal das Device "pswrite" zum Zuge kommt. Aus einem 18seitigen Folien-
Satz zur Knoppix-CD [2] sollen in unserem Fall lediglich die Seiten 17 und 
18 ins Postscript-Format umgesetzt werden, deshalb erzwingt der Schalter
"-dFirstpage=17" die Ignorierung der ersten 16 Seiten.

Screenshot:
Screenshot

Die in den PDF-Dokumenten eventuell vorhandenen interaktiven Links könnt 
ihr in dem erstellen PS-Dokument, obwohl abgebildet, prinzipbedingt 
natürlich nicht mehr nutzen. Dafür steht einem "Durch"-Blättern des 
Dokuments nichts im Wege.  


4. Und tschüs

So, jetzt habt ihr genug Material, um intensiv mit Ghostscript spielen und 
die Zeit bis zum nächsten Teil überbrücken zu können. :)
Wenn alles wie geplant verläuft, schauen wir uns dann das Extrahieren von 
Inhaltsbestandteilen, wie Textpassagen und Bilder, aus PDF-Dateien und das 
Drucken der PS- und PDF-Dokumente ein wenig näher an.


[1] im Aminet unter /gfx/conv/GS650-xxx.lha
[2] http://www.knopper.net

Uwe Pannecke <Uwe.Pannecke@t-online.de>